/*
 * Copyright 2020-2030 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gitee.minimalismstyle.fresh.common.data.mongo.config

import org.springframework.beans.factory.BeanFactory
import org.springframework.beans.factory.NoSuchBeanDefinitionException
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.data.mongodb.MongoDbFactory
import org.springframework.data.mongodb.core.convert.*
import org.springframework.data.mongodb.core.mapping.MongoMappingContext

/**
 * mongodb 统一配置
 * @author maoxiaodong
 */
@Configuration
class MongoConfig {

//    @Bean
//    fun mappingMongoConverter(factory: MongoDbFactory?, context: MongoMappingContext?, beanFactory: BeanFactory): MappingMongoConverter {
//        val dbRefResolver: DbRefResolver = DefaultDbRefResolver(factory!!)
//        val mappingConverter = MappingMongoConverter(dbRefResolver, context!!)
//        try {
//            mappingConverter.setCustomConversions(beanFactory.getBean(MongoCustomConversions::class.java))
//        } catch (ignore: NoSuchBeanDefinitionException) {
//        }
//
//        // Don't save _class to mongo
//        mappingConverter.setTypeMapper(DefaultMongoTypeMapper(null))
//        return mappingConverter
//    }
}